package br.com.foxinline.servico;

import br.com.foxinline.modelo.Titulo;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.Query;

/**
 *
 * @author cadomeireles
 */
@Stateless
public class TituloServico extends ServicoGenerico<Titulo> {

    public TituloServico() {
        super(Titulo.class);
    }
    
    public List<Titulo> pesquisar(Titulo titulo) {
        String sql = "select titulo from Titulo titulo where titulo.ativo = true";

        if (titulo.getNome() != null && !titulo.getNome().isEmpty()) {
            sql += " and lower(titulo.nome) like '%" + titulo.getNome().toLowerCase().trim() + "%'";
        }

        if (titulo.getDescricao() != null && !titulo.getDescricao().isEmpty()) {
            sql += " and lower(titulo.descricao) like '%" + titulo.getDescricao().toLowerCase().trim() + "%'";
        }
        
        Query query = getEntityManager().createQuery(sql);

        return query.getResultList();
    }

    @Override
    public void deletar(Titulo titulo) {
        titulo.setAtivo(false);
        super.atualizar(titulo);
    }    
    
    public List<Titulo> autocompletar(String query) {
        return buscarPeloNome(query);
    }

    private List<Titulo> buscarPeloNome(String query) {
        List<Titulo> operacoes = getEntityManager().createQuery("select titulo from " + Titulo.class.getSimpleName() + " titulo where lower(titulo.nome) like '%" + query.toLowerCase().trim() + "%'").getResultList();
        return operacoes;        
    }    
    
}
